package com.foreveross.proxyip.infra.base.ddd.repository;

import java.sql.Connection;
import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;

public interface IJdbcRepository {
	/**
	 * 	
	 * @param <T>
	 * @param list
	 * @param clazz clazz，clazz是数据库映射对象， 基本数据类型必须是一个对象如：integer
	 * @return
	 * @throws Exception 
	 */
		@SuppressWarnings("rawtypes")
		public  int saveList(Connection conn,List list,Class clazz ) throws Exception;
		
/**
 * 获取数据源
 * @return
 */
		public DataSource getDataSource();
		/**
		 * 获取一个连接
		 * @return
		 * @throws Exception
		 */
		
		public Connection getConnection() throws Exception;
		
		/**
		 * 获取jdbcTemplate
		 * @return
		 */
		public JdbcTemplate getJdbcTemplate();
		
		/**
		 * 执行一条sql
		 * @param conn
		 * @param sql
		 * @return
		 * @throws Exception
		 */
		public boolean execute(Connection conn ,String sql ) throws Exception;
		
		
		/**
		 * 删除cla对应表的全部数据
		 * @param conn
		 * @param cla
		 * @throws Exception
		 */
		@SuppressWarnings("rawtypes")
		public void deleteAll(Connection conn ,Class clazz) throws Exception;
		
		/**
		 * 在obj对应数据库表插入一条记录
		 * @param conn
		 * @param obj
		 * @throws Exception
		 */
		public void insert(Connection conn,Object obj) throws Exception;
}
